package com.yn.common.response.zyorder;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yn.common.request.zyorder.ZyOrderServiceRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 转运订单
 *
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="转运订单返回对象", description="转运订单")
public class ZyOrderResponse {

    //出发地区编码
    @ApiModelProperty(value = "出发地区编码")
    private String startRegionCode;
    //目的地区编码
    @ApiModelProperty(value = "目的地区编码")
    private String endRegionCode;
    //出发地区名称
    @ApiModelProperty(value = "出发地区名称")
    private String startDestination;
    //目的地区名称
    @ApiModelProperty(value = "目的地区名称")
    private String endDestination;
    //出发地标
    @ApiModelProperty(value = "出发地标")
    @NotBlank(message = "出发地标不能为空")
    private String startLocality;
    //出发地标
    @NotBlank(message = "目的地标不能为空")
    @ApiModelProperty(value = "出发地标")
    private String endLocality;

    //乘车人数
    @NotNull(message = "乘车人数不能为空")
    @ApiModelProperty(value = "乘车人数")
    private Integer ridingNumber;
    //用车时间
    @NotNull(message = "用车时间不能为空")
    @ApiModelProperty(value = "用车时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date useCarDateTime;
    //乘坐人/下单人手机号码
    @ApiModelProperty(value = "乘坐人/下单人手机号码")
    @NotBlank(message = "乘坐人/下单人手机号码不能为空")
    private String userOrderPhone;
    //乘坐人/下单人姓名
    @ApiModelProperty(value = "乘坐人/下单人姓名")
    @NotBlank(message = "乘坐人/下单人姓名不能为空")
    private String userOrderName;
    //出院诊断
    @ApiModelProperty(value = "出院诊断")
    @NotBlank(message = "出院诊断不能为空")
    private String dischargeDiagnosis;

    //转运类型
    @ApiModelProperty(value = "转运类型")
    @NotNull(message = "转运类型不能为空")
    private Integer transportType;

    //转运路程距离(米)
    @ApiModelProperty(value = "转运路程距离(米)")
    private Integer transferDistance;
    //优惠卷id
    @ApiModelProperty(value = "优惠卷id")
    private Integer couponId;

    //订单类型(1:普通订单 2:公益类型)
    @ApiModelProperty(value = "订单类型(1:普通订单 2:公益类型)")
    @NotNull(message = "订单类型不能为空")
    private Integer orderType;

    //公益上传的材料
    @ApiModelProperty(value = "公益上传的材料")
    private String welfareMaterial;

    @ApiModelProperty(value = "服务项")
    private List<ZyOrderServiceRequest> zyServiceConfigRequests;

}
